/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package persistencia;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import modelo.ConsultasExterna;
import modelo.HistorialClinico;

/**
 *
 * @author jony
 */
public class BaseDatosHistorialClinico {
    private static Statement s = null;
    //public static String modelo;
    private static Connection conexion;
    
    
     /**
     * Constructor vacío. Carga el driver de la base de datos y abre la
     * conexión.
     */
    public BaseDatosHistorialClinico() throws ClassNotFoundException, SQLException {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conexion = DriverManager.getConnection("jdbc:mysql://localhost/proyectosge", "root", "");
        } catch (ClassNotFoundException ex) {
//            System.err.println("ERROR. DBManager(). Error al cargar el driver JDBC de MYSQL");
            JOptionPane.showMessageDialog(null, "Error al cargar el driver JDBC de MySQL", "ERROR", JOptionPane.ERROR_MESSAGE);
            throw ex;
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Error con la Base de datos. Comprueba que está iniciada.", "ERROR", JOptionPane.ERROR_MESSAGE);
//            System.err.println("ERROR. DBManager(). Error de SQL");
            throw ex;
        }
    }   
    
    
          /**
     * Cierra la conexión con la base de datos.
     *
     * @throws java.sql.SQLException. Indica una error de SQL en el intento de
     * cierre de la conexión.
     */
    public void closeConnection() throws java.sql.SQLException {
        try {
            conexion.close();
        } catch (SQLException ex) {
            System.err.println("ERROR. DBManager.closeConnection(). Error al cerrar la conexion");
            throw ex;
        }
    }
    
    
    
    
    
    ////////////////////////////////////////////////////
    //                  Historial Clinico
    ///////////////////////////////////////////////////
    
    
    /**
     * Recupera todas las HC almacenadas en la base de datos.
     *
     * @return Todas las HC de la base de datos.
     * @throws java.sql.SQLException Indica un error de acceso a la base de
     * datos.
     */
    
    
    
//    public ArrayList<HistorialClinico> getHC() throws java.sql.SQLException {
//        ArrayList<HistorialClinico> alHC = new ArrayList();
//        HistorialClinico hc;
//        try {
//            s = conexion.createStatement();
//            String sql = "select * from consultas";
//            ResultSet rs = s.executeQuery(sql);
//            while (rs.next()) {
//                hc = new HistorialClinico(rs.getInt("idConsulta"),rs.getInt("idPA"),rs.getDate("fecha"),rs.getTime("horaEntrada"),rs.getTime("horaSalida"),rs.getString("especialidad"));
//                alHC.add(hc);
//            }
//        } catch (SQLException ex) {
//            System.err.println("ERROR. DBManager.getCE(). Error de SQL.");
//            throw ex;
//        }
//        return alHC;
//    }

    /**
     * Inserta una CE en la base de datos.
     *
     * @param ce CE a insertar.
     * @throws java.sql.SQLException Indica un error de acceso a la base de
     * datos.
     */
//    public void addCE(ConsultasExternas ce) throws java.sql.SQLException {
//        try {
//            s = conexion.createStatement();
//           String sql = "insert into consultas (especialiad,fecha,horaEntrada,horaSalida,idConsulta,idPA) values (" +ce.getEspecialidad()+",'"+ce.getFecha()+",'"+ce.getHoraEntrada()+",'"+ce.getHoraSalida()+",'"+ce.getID_ConsultasExternas() + ",'" + ce.getID_Paciente()+"')";
//            System.out.println(sql);
//            s.executeUpdate(sql);
//        } catch (SQLException ex) {
//            System.err.println("ERROR. DBManager.addCE(). Error de SQL.");
//            throw ex;
//        }
//    }
    
    
    
    
}//FIN
